//
//  DivingBoard.swift
//  LeetCodeSummary
//
//  Created by WangYonghe on 2020/7/8.
//  Copyright © 2020 WangYonghe. All rights reserved.
//  面试题 16.11. 跳水板

import UIKit

/*
 面试题 16.11. 跳水板
 你正在使用一堆木板建造跳水板。有两种类型的木板，其中长度较短的木板长度为shorter，长度较长的木板长度为longer。你必须正好使用k块木板。编写一个方法，生成跳水板所有可能的长度。

 返回的长度需要从小到大排列。

 示例：

 输入：
 shorter = 1
 longer = 2
 k = 3
 输出： {3,4,5,6}
 提示：

 0 < shorter <= longer
 0 <= k <= 100000
 */

class DivingBoard: NSObject {
    func divingBoard(_ shorter: Int, _ longer: Int, _ k: Int) -> [Int] {


        //要考虑k = 0 和 shorter = longer 两种特殊情况
        if k == 0{
            return []
        }
        
        if shorter == longer {
            return [k*shorter]
        }
        
        var tmp = 0
        var resultArr:[Int] = []
        
        while tmp <= k {
            let result = (k - tmp)*shorter + (0 + tmp)*longer
            resultArr.append(result)
            tmp = tmp + 1
        }
        
        return resultArr
    }
}
